package pt.uminho.di.poo.transitarios.produto;

import pt.uminho.di.poo.transitarios.produto.encomenda.ITipoCarga;

public class Produto implements IProduto {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private ITipoCarga categoriaCarga;

	private String codigo;
	private String descricao;
	private String nome;
	private Integer numeroMaximoCargas;

	public Produto(ITipoCarga categoriaCarga, Integer numeroMaximoCargas,
			String nome, String descricao, String codigo) {
		super();
		this.categoriaCarga = categoriaCarga;
		this.numeroMaximoCargas = numeroMaximoCargas;
		this.codigo = codigo;
		this.nome = nome;
		this.descricao = descricao;
	}

	@Override
	public int compareTo(IProduto o) {

		return this.codigo.compareTo(o.getCodigo());
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see pt.uminho.di.poo.transitarios.produto.Cenas#getCategoriaCarga()
	 */
	@Override
	public ITipoCarga getCategoriaCarga() {
		return this.categoriaCarga;
	}

	@Override
	public String getCodigo() {

		return this.codigo;
	}

	public String getDescricao() {
		return this.descricao;
	}

	@Override
	public String getNome() {
		return this.nome;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see pt.uminho.di.poo.transitarios.produto.Cenas#getNumeroMaximoCargas()
	 */
	@Override
	public Integer getNumeroMaximoCargas() {
		return this.numeroMaximoCargas;
	}

	public void setCategoriaCarga(ITipoCarga categoriaCarga) {
		this.categoriaCarga = categoriaCarga;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public void setNumeroMaximoCargas(Integer numeroMaximoCargas) {
		this.numeroMaximoCargas = numeroMaximoCargas;
	}

}
